<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>
    
</body>
<script>
    // for in     for of
    let arr = [11,22,33,44,55]
    // for(var key in arr){
    //     console.log(key);//下标
    //     console.log(arr[key]);//数组的每一个
    // }

    // for(var key of arr){
    //     console.log(key);//数组的每一项
    //     // console.log(arr[key]);
    // }

    // for in 和for of 都可以循环遍历数组  for in key是数组的下标  for of 没有下标 key就是数组的每一项

    let obj = {
        name:'zs',
        age:18,
        sex:'男'
    }
    // for(var key in obj){
    //     console.log(key);//遍历出来的对象的属性名
    //     console.log(obj[key]);//遍历出来的对象的属性值
    // }
    // for(var key of obj){  //报错
        
    // }
    // obj is not iterable
    // for of  不能循环遍历对象


    let set = new Set().add('a').add('b').add('c')
    console.log(set);

    for(var key of set){
        console.log(key);//key就是遍历出来的set结构里面的每一个成员
    }
//    for in 可以循环遍历对象  for of 不能循环遍历对象  只能遍历带Iterator 例如 Set结构  Map结构  



// es6里面新增的遍历对象的方法


// Object.keys()，Object.values()，Object.entries()

var obj1 = { foo: 'bar', baz: 42 };
console.log(Object.keys(obj1));//返回的是一个数组类型  数组里面就是循环遍历出来的对象的属性名
console.log(Object.values(obj1));//返回的是一个数组类型  数组里面就是循环遍历出来的对象的属性名
console.log(Object.entries(obj1));//返回的是一个数组类型  ,数组的是一个元素就是属性名，第二个元素就是属性值


let a = {a:1}
let b = {b:2}
let c = {c:3}
console.log(Object.assign(a,b,c));///把多个对象合并成一个对象



</script>
</html>